1. Field of the Invention
The present invention relates in general to the field of information processing and in particular relates to a multiple input, multiple output communication system and method for efficient decoding of space time codes using symbol-pair decoding.
2. Description of the Related Art
The demand for wireless communication systems continues to expand. Wireless communication systems transmit and receive signals within a designated electromagnetic frequency spectrum. Wireless communication systems can be virtually any type of wireless one-way or two-way communication device such as cellular telephones, wireless equipped computer systems, and wireless personal digital assistants. The signals communicated between base stations and subscriber stations can include data such as voice, electronic mail, still images, and video.
Various wireless communication technologies employ multiple antennas at the transmitter and receiver of communication devices to improve range and performance of communication systems. Multiple-input multiple-output (MIMO) communication systems employ multiple antennas at both the receiver and transmitter. MIMO systems transmit multiple data streams in parallel thus creating a linear increase in throughput with every pair of receiver/transmitter antennas added to the MIMO system. MIMO systems exploit unique spatial transmission paths between a transmitter and receiver to increase throughput without necessitating an increase in bandwidth or total transmission power.
FIG. 1 depicts an example multiple input, multiple output (MIMO) communication system 100. Generally one communication device is referred to as a base station and one or more other communication devices are referred to as subscriber stations. Additionally, in general, both base stations and subscriber stations include a transmitter and a receiver. Communication system 100 depicts a base station 102 and a single subscriber station 104. The base station 102 is, for example, a cell phone base station, and the subscriber station 104 is, for example, a cellular telephone.
Communication system 100 transmits a signal x and provides at least an intelligible estimate of the signal x to a user. (Note: lower case bold variables indicate vectors and upper case BOLD variables indicate matrices). In at least one embodiment, the signal x is a discrete time signal. The modulator 105 modulates signal x into symbols xm. The particular modulation scheme is a matter of design choice. In one embodiment, modulator 204 performs quadrature amplitude modulation, such as a quadrature phase-shift keying (QPSK). QPSK quantizes each element of signal x to one of four values in a four-value constellation.
Under typical conditions, transmitted data traverses a corrupting transmission environment characterized by scattering, attenuation, reflection, and refraction. The transmitted data is also corrupted by non-idealities n in the receiver, such as thermal noise. Space-time code (STC) encoder 106 employs space-time coding to combine copies of the transmitted symbols s in a way that allows extraction of as much information as possible and to differentiate between transmitted symbols s={s1, s2, s3, . . . , sT}, where T is a discrete temporal dimension. The STC encoder encodes the symbols s into a linear STC matrix S:
                    S        =                  (                                                                      s                  11                                                                              s                  12                                                            ⋯                                                              s                  T                                                                                                      s                  21                                                                              s                  21                                                            ⋯                                                              s                                      2                    ⁢                    T                                                                                                      ⋯                                            ⋯                                            ⋯                                            ⋯                                                                                      s                                      t                    ⁢                                                                                  ⁢                    1                                                                                                s                                      t                    ⁢                                                                                  ⁢                    2                                                                              ⋯                                                              s                  tT                                                              )                                    (        1        )            The particular space-time code used by the STC encoder 106 is a matter of design choice. Unless otherwise indicated, matrix rows indicate discrete time intervals and matrix columns indicate antenna dimension.
The MIMO modulator/transmitter 108 combines each row of STC matrix S and modulates each combination. In at least one embodiment, modulation is accomplished using orthogonal frequency division multiplexing OFDM modulation. Each row of STC matrix S is then transmitted by modulator/transmitter 108 such that the ith antenna transmits the ith row of STC matrix S.
During transmission between the base station 102 and the subscriber station 104, the transmitted STC matrix S is modified by a channel matrix H. The channel matrix H represents the modification of STC matrix S by the transmission environment. In at least one embodiment, both the base station 102 and subscriber stations 104 know the estimated element values of channel matrix H using, for example, well-known pilot estimation techniques.
A channel matrix HMN can be written generally as an (N×M) matrix where M is the number of transmit antennas and N is the number of receiver antennas. A channel matrix H for a 2×2 MIMO transmitter and receiver system can be represented by a matrix of individual channel coefficients h11, h12, h21, and h22 as set forth in Equation (2):
                              H          22                =                              [                                                                                h                    11                                                                                        h                    12                                                                                                                    h                    21                                                                                        h                    22                                                                        ]                    .                                    (        2        )            
h11 represents a channel portion from a transmitter antenna 116.1 to a receiver antenna 118.1. h21 represents a channel portion from the transmitter antenna 116.1 to a receiver antenna 118.2. h12 represents a channel portion from the transmitter antenna 116.2 to the receiver antenna 118.1. h22 represents a channel portion from the transmitter antenna 116.2 to the receiver antenna 118.2.
A (3×2) MIMO system has a transmission channel represented by a channel matrix H32 set forth in Equation (3):
                              H          32                =                  [                                                                      h                  11                                                                                                                                                h                        12                                                                                                            h                        13                                                                                                                                                                  h                  21                                                                                                                                                h                        22                                                                                                            h                        23                                                                                                                          ]                                    (        3        )            
A (4×2) MIMO system has a channel represented by a channel matrix H42 as set forth in Equation (4):
                              H          42                =                  [                                                                      h                  11                                                                              h                  12                                                                              h                  13                                                                              h                  14                                                                                                      h                  21                                                                              h                  22                                                                              h                  23                                                                              h                  24                                                              ]                                    (        4        )            and so on.
Space Time Encoding
A MIMO transmitter typically maps a stream of modulated data bits to be sent to a receiver into an appropriate space time code (STC) for transmission. This STC uses the dimensions of space and time to encode the multiple data bits. The use of an array of multiple antennas implements the space dimension, and the time dimension is implemented by having each antenna in the array send a series of transmitted symbols in succession.
In particular, one or more bits from a transmit bit stream are mapped onto a plurality of symbols s1 through sT chosen from a known constellation of available symbol values. The values of the symbols are used to populate an STC matrix S that represents how the symbols will be sent to the receiver. In particular each symbol will be chosen to represent one or more bits from the bit stream.
The STC matrix S is an (M×K) matrix, where M represents the number of antennas used by the transmitter, and K represents the number of symbols sent by each transmitter for a given set of mapped bits. For example, a MIMO system having a transmitter with four antennas (i.e., M=4), and for which each antenna transmits two symbols for a given set of mapped bits (i.e., K=2), the STC matrix S is a (4×2) matrix is written as:
                    S        =                              S            42                    =                      [                                                                                S                    1                                                                                        S                    5                                                                                                                    S                    2                                                                                        S                    6                                                                                                                    S                    3                                                                                        S                    7                                                                                                                    S                    4                                                                                        S                    8                                                                        ]                                              (        5        )            
s1, s2, s3, s4, s5, s6, s7, and s8 represent the symbols that the transmitter will be sending to the receiver. It will be understood, however, that this description can apply generally to situations in which M and K have values other than 4 and 2, respectively.
The STC matrix S can actually be considered as a collection of K STC arrays st of length M, each representing the transmissions from the M transmit antennas at a given time t. For example, the (4×2) STC matrix S42 can be split into a (4×1) array st1 that represents the transmissions of the M transmit antennas at a time t1, and a (4×1) array st2 that represents the transmissions of the M transmit antennas at a time t2, as follows:
                                          s                          t              ⁢                                                          ⁢              1                                =                      [                                                                                s                    1                                                                                                                    s                    2                                                                                                                    s                    3                                                                                                                    s                    4                                                                        ]                          ,        and                            (        6        )                                          s                      t            ⁢                                                  ⁢            2                          =                              [                                                                                s                    5                                                                                                                    s                    6                                                                                                                    s                    7                                                                                                                    s                    8                                                                        ]                    .                                    (        7        )            
In other words, at time t1, the first transmitter antenna will transmit symbol s1, the second transmitter antenna will transmit symbol s2, the third transmitter antenna will transmit symbol s3, and the fourth transmitter antenna will transmit symbol s4. Then at time t2, the first transmitter antenna will transmit symbol s5, the second transmitter antenna will transmit symbol s6, the third transmitter antenna will transmit symbol s7, and the fourth transmitter antenna will transmit symbol s8.
In some embodiments, the symbols s1, s2, s3, s4, s5, s6, s7, and s8 can be separate symbols, each representing one or more bits of data. However, in alternate embodiments one or more of the symbols in the STC matrix S can be a copy of another encoded symbol or derived from another signal and thereby providing duplicate information within the STC matrix S and making the matrix of data more robust.
Thus, in one embodiment, each position in the STC matrix S is provided with its own symbol, and in another embodiment, the same symbol representing the same one or more bits, could be repeated in every location in the STC matrix S. In various other embodiments a number of symbols between one and the total matrix size can be encoded.
For example, one type of STC matrix S used in some embodiments for a (4×L) system (i.e., a 4 transmit antenna system) is described below. An example STC matrix S42 is shown for a (4×2) system (i.e., a system with four transmit antennas and two receive antennas). In this example S42 is shown as set forth in Equation (8):
                                          S            42                    =                      [                                                                                s                    1                                                                                        -                                          s                      2                      *                                                                                                                                        s                    2                                                                                        s                    1                    *                                                                                                                    s                    3                                                                                        -                                          s                      4                      *                                                                                                                                        s                    4                                                                                        s                    3                    *                                                                        ]                          ,                            (        8        )            
where s1*, s2*, s3*, and s4* are the conjugates of the symbols s1, s2, s3, and s4, respectively.
In other words, to derive the STC matrix S42, from the general STC matrix of equation (4), the following equalities are true:s5=−s2*,  (9)s6=s1*,  (10)s7=−s4*, and  (11)s8=s3*.  (12)
Similarly, for a (3×2) MIMO system, one STC matrix used in one embodiment is denoted as S32 is denoted as:
                                          S            32                    =                      [                                                                                s                    1                                                                                        -                                          s                      2                      *                                                                                                                                        s                    2                                                                                        s                    1                    *                                                                                                                    s                    3                                                                                        -                                          s                      4                      *                                                                                            ]                          ,                            (        13        )            with similar substitutions being made for the elements in a general (3×2) STC matrix S32.
In both of these embodiments, a number of data bits are encoded into four separate symbols s1, s2, s3, and s4. The B-matrix S42B for a (4×2) MIMO system is populated with the four original symbols, s1, s2, s3, and s4, as well as the symbol conjugates s1* and s3*, and the inverse symbol conjugates −s2* and −s4*. Similarly, the B-matrix S32B for a (3×2) MIMO system is populated with the three original symbols, s1, s2, and s3, as well as the symbol conjugate s1*, and the inverse symbol conjugates −s2* and −s4*. Thus, for both of these examples, four symbols, each representing one or more bits, are space-time encoded into the STC matrix S.
Each of the N receiver antennas then receives each of the M transmitted signals along a respective signal path for each of the K time intervals. The signals received at the N receiver antennas over the K time intervals can thus be written as an (N×K) receive matrix Y as set forth in Equation ((14):Y=HS+N  (14)where H is the (L×M) channel matrix that represents the effect of the transmission channel on a transmitted signal, S is the (M×K) STC array representing the signals transmitted from the M transmitter antennas, and N is an (L×K) noise matrix indicating the noise components received at the L receiver antennas over the K time intervals.
For example, in an embodiment with two receiver antennas (i.e., L=2), and in which each transmitter antenna transmits two symbols for each set of mapped bits (i.e., K=2), Y and N can be represented as follows:
                              Y          =                      [                                                                                y                    1                                                                                        y                    3                                                                                                                    y                    2                                                                                        y                    4                                                                        ]                          ,        and                            (        15        )                                N        =                              [                                                                                n                    1                                                                                        n                    3                                                                                                                    n                    2                                                                                        n                    4                                                                        ]                    .                                    (        16        )            where y1 and y2 are the signals received at a first and second receiver antennas, respectively, at a first time interval, and y3 and y4 are the signals received at the first and second receiver antennas, respectively, at a second time interval; and where n1 and n2 are noise components received at a first and second receiver antennas, respectively, at a first time interval, and n3 and n4 are noise components received at the first and second receiver antennas, respectively, at a second time interval. The same concepts applied to 4×2 and 3×2 systems be extended to apply to systems in which a larger number of receive antennas are used.
The receive matrix Y is decoded to retrieve the encoded data bits typically with the objective of minimizing the bit error rate (BER), packet error rate (PER), or other some other signal quality measurement.
The STC decoder 112 decodes the received signal matrix Y to extract the transmitted symbols s. In at least one embodiment, the STC decoder 112 decodes received signal matrix Y using minimum mean square estimation with successive interference cancellation (MMSE-SIC).
Referring to FIGS. 1 and 2, the STC decoder 112 decodes the received signal vector y in accordance with the MMSE-SIC decoding process 200. To decode received signal vector y, operation 202 obtains the MMSE least mean square (LMS) estimate of the transmitted symbol si with the highest received SNR. Operation 204 quantizes the estimate of the transmitted symbol {tilde over (s)}i with the highest received SNR to the nearest value in the symbol constellation, such as a QPSK constellation. Operation 206 subtracts the effect of the quantized symbol {tilde over (s)}i from the vector y of received signals and repeats operation 202 until decision operation 208 determines that all symbols in vector s have been decoded. Once all symbols in vector s have been decoded, block 210 indicates that operation 200 resets and repeats for the next vector s.
Following is a more detailed description of MMSE-SIC decoding process 200.
Assume that s and n are zero mean, spatially white vectors and uncorrelated to each other. Then, the linear MMSE estimate of s is given byŝ=(σ2I+{tilde over (H)}H{tilde over (H)})−1{tilde over (H)}Hy  (17)
The linear estimator matrix is denoted as A=(σI+{tilde over (H)}H{tilde over (H)})−1{tilde over (H)}H. The ith throw of A is called the ith MMSE nulling vector. The error covariance matrix is given byR=P−1=(σ2I+{tilde over (H)}H{tilde over (H)})−1.  (18)where P−1 represents the matrix inverse of the matrix P.
The symbol ŝi with the highest received SNR in symbol vector s corresponds to the element with the lowest value of error covariance given by Rii. “I” represents an identify matrix, and the “H” superscript indicates a Hermitian matrix.
Assuming the number N of symbols in symbol vector s equals 4 and that the highest SNR symbol corresponds to symbol ŝ4, MMSE-SIC decoding process 200 determines a fairly accurate estimate of symbol s4 by quantizing symbol s4 and denoting it as an estimated symbol ŝ4. Then, assuming that we have correct detection, the effect of symbol s4.
                                          y            -                                                            h                  ~                                4                            ⁢                                                s                  ~                                4                                              =                                                                      H                  ~                                                  (                  3                  )                                            ⁢                              s                                  (                  3                  )                                                      +            n                          ⁢                                  ⁢        where                            (        19        )                                                      H            ~                                (            3            )                          =                                            [                                                                    h                    ~                                    1                                ⁢                                                      h                    ~                                    2                                ⁢                                                      h                    ~                                    3                                            ]                        ⁢                          s                              (                3                )                                              =                      (                                                                                s                    1                                                                                                                    s                    2                                                                                                                    s                    3                                                                        )                                              (        20        )            and {tilde over (h)}i is the ith column of {tilde over (H)}. The solution to equation (19) requires computing the inverse of P(3)=(σI+{tilde over (H)}(3)H{tilde over (H)}(3)).
Thus, MMSE-SIC decoding process 200 requires computing the inverses of P(i) and performing N−1 recursive procedures for each si not having the lowest SNR. Computing the inverses of P(i) and performing N−1 recursive procedures is computationally expensive and may not be practical for real-time signal processing. The computation complexity has been estimated to equal 0.66t3+7r·t2+2r2t.
The channel decoder/demodulator 114 determines an estimate of signal x from the decoded, estimated symbols ŝ. In at least one embodiment, channel decoder/demodulator 114 essentially uses the reverse processes of modulator 105 to determine the estimated signal {circumflex over (x)}.
Accordingly, there is a need for a more efficient system and process for decoding received signals in a MIMO wireless communication system.